/*
 * @Author: your name
 * @Date: 2021-07-05 19:23:11
 * @LastEditTime: 2021-07-05 22:23:20
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \vue-hr-project\src\utils\tarnsTreeData.js
 */
/**
 * @description: 树形数据处理
 * @param {*} list
 * @return {*}
 */
//   书写处理逻辑
//   寻找父节点的过程 pid字段匹配id字段 如果匹配上就是它的子节点
//   1. 遍历list中的每一项 使用id字段作为key,使用自身作为value形成一个map结构
//   2. 遍历list每一项 使用他们的pid 去匹配map结构中的key
//   如果匹配上就是它的子节点  添加到 children属性里面
//   如果匹配不上 证明它自己就是顶层的节点
export function transTreeData(list) {
  const newList = []
  const map = {}
  // 1. 遍历list中的每一项 使用id字段作为key, 使用自身作为value形成一个map结构
  list.forEach((item) => {
    item.children = []
    map[item.id] = item
  })
  //   2. 遍历list每一项 使用他们的pid 去匹配map结构中的key
  list.forEach((item) => {
    if (map[item.pid]) {
      // 证明匹配上了
      map[item.pid].children.push(item)
    } else {
      // 没匹配上
      newList.push(item)
    }
  })
  //   console.log(map)
  return newList
}
